package com.tfjybj.itoo.teach.model;

import com.dmsdbj.itoo.tool.base.entity.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.Column;
import java.io.Serializable;
import java.util.Date;

/**
 * @author 井朝
 * @since 1.0.8 2018年11月9日20:55:19
 */
@ApiModel(value = "选课实体,继承自BaseEntity")
@Data
@NoArgsConstructor
public class ChooseCourseModel extends BaseEntity implements Serializable {
    //ID课程
    @ApiModelProperty(value = " 课程id")
    @Column(name = "course_id")
    private String courseId;
    //课程名称
    @ApiModelProperty(value = " 课程名称")
    @Column(name = "course_name")
    private String courseName;
    //上课时间
    @ApiModelProperty(value = " 上课时间")
    @Column(name = "week_id")
    private String weekId;
    //上课节次
    @ApiModelProperty(value = " 上课节次")
    @Column(name = "cell_time_id")
    private String cellTimeId;
    //授课教师
    @ApiModelProperty(value = " 授课教师")
    @Column(name = "teacher_name")
    private String teacherName;
    //教师id
    @ApiModelProperty(value = " 教师id")
    @Column(name = "teacher_id")
    private String teacherId;

    /**
     * 教师和上课班关联表id
     */
    @ApiModelProperty(value = "教师和上课班关联表id")
    @Column(name = "teacher_teach_id")
    private String teacherTeachId;

    //上课班容量
    @ApiModelProperty(value = " 上课班容量")
    @Column(name = "capacity")
    private String capacity;
    //剩余容量
    @ApiModelProperty(value = " 剩余容量")
    @Column(name = "remain_capacity")
    private String remainCapacity;
    //学分
    @ApiModelProperty(value = " 学分")
    @Column(name = "credit")
    private String classPoint;
    //课程性质
//    @ApiModelProperty(value = " 课程性质")
//    @Column(name = "course_type")
//    private String courseNature;
    //学院id
    @ApiModelProperty(value = " 学院id")
    @Column(name = "academy_id")
    private String institutionId;
    //专业id
    @ApiModelProperty(value = " 专业id")
    @Column(name = "profession_id")
    private String professionId;
    //上课班id
    @ApiModelProperty(value = " 上课班id")
    @Column(name = "teach_class_id")
    private String teachClassId;
    //课程类型id
    @ApiModelProperty(value = " 课程类型id")
    @Column(name = "course_type")
    private String courseTypeId;
    //学生id
    @ApiModelProperty(value = " 学生id")
    @Column(name = "student_id")
    private String studentId;
    //学年学期code
    @ApiModelProperty(value = " 学年学期code")
    @Column(name = "semester_id")
    private String semesterCode;
    //年级
    @ApiModelProperty(value = " 年级")
    @Column(name = "grade")
    private String gradeCode;

    /**
     * 班级_id
     */
    @ApiModelProperty(value = "班级_id")
    @Column(name = "class_id")
    private String classId;

    /**
     * 教室_id
     */
    @ApiModelProperty(value = "教室_id")
    @Column(name = "room_id")
    private String roomId;

    /*
     * 开始周
    */
    @ApiModelProperty(value = "开始周")
    @Column(name = "start_week")
    private Integer startWeek;


    /**
     * 结束周
     */
    @ApiModelProperty(value = "结束周")
    @Column(name = "end_week")
    private Integer endWeek;

    
    @ApiModelProperty(value = "选课人数上限")
    @Column(name = "top_limit")
    private Integer topLimit;


    /**
     * 选课人数下限
     */
    @ApiModelProperty(value = "选课人数下限")
    @Column(name = "low_limit")
    private Integer lowLimit;

    /**
     * 选课开始日期
     */
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
    )
    @ApiModelProperty(value = "选课开始日期")
    @Column(name = "start_date")
    private Date startDate;

    /**
     * 选课结束日期
     */
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
    )
    @ApiModelProperty(value = "选课结束日期")
    @Column(name = "end_date")
    private Date endDate;

    /**
     * 单双周（0/1/2 单/双/全）
     */
    @ApiModelProperty(value = "单双周（0/1/2 单/双/全）")
    @Column(name = "odd_week_or_not")
    private Integer oddWeekOrNot;
}

